home *** CD-ROM | disk | FTP | other *** search
- /* Chaos: The Chess HAppening Organisation System V5.3
- Copyright (C) 1993 Jochen Wiedmann
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-
- $RCSfile: ARexxAmi.c,v $
- $Revision: 3.2 $
- $Date: 1994/10/11 20:44:56 $
-
- This file contains the functions of the ARexx port. I don't expect them
- to be interesting besides the Amiga.
-
- Computer: Amiga 1200 Compiler: Dice 2.07.54 (3.0)
-
- Author: Jochen Wiedmann
- Am Eisteich 9
- 72555 Metzingen
- Tel. 07123 / 14881
- Internet: wiedmann@mailserv.zdv.uni-tuebingen.de
- */
-
-
- #ifndef CHAOS_H
- #include "chaos.h"
- #endif
-
- #include <ctype.h>
-
-
-
- #ifdef AMIGA
- #ifndef AZTEC_C
- SAVEDS ASM static ULONG ARexxCmdFunc(REG(a0) struct Hook *hook,
- REG(a1) char *args[])
-
- { extern void MakeDisplay(void);
- extern int EnableARexx;
- extern int NoWindow;
- ULONG result;
- HOOKFUNC func = hook->h_SubEntry;
- typedef ULONG (*MYHOOKFUNC)(char **);
-
- if (!EnableARexx)
- { return(RETURN_ERROR);
- }
- result = (*((MYHOOKFUNC) func))(args);
- if (!NoWindow)
- { MakeDisplay();
- }
- return(result);
- }
- #else /* AZTEC_C */
- extern ULONG ARexxCmdFunc(struct Hook *, char **);
- #asm
- xref _geta4
- xref _EnableARexx
- xref _MakeDisplay
- xref _NoWindow
- _ARexxCmdFunc: move.l a4,-(sp)
- jsr _geta4
- move.l #10,d0
- tst.l _EnableARexx
- bne ARexxCmdFuncE
- move.l a1,-(sp)
- move.l 12(a0),a0
- jsr (a0)
- add.l #4,sp
- tst.l _NoWindow
- bne ARexxCmdFuncE
- move.l d0,-(sp)
- jsr _MakeDisplay
- move.l (sp)+,d0
- ARexxCmdFuncE: move.l (sp)+,a4
- rts
- #endasm
- #endif /* AZTEC_C */
-
-
-
-
- /*
- NewTrnCmd creates a new tournament.
-
- Inputs: NAME - the new tournament's name
- FORCE - suppress asking the user for confirmation, if current
- tournament isn't saved
- */
- ULONG NewTrnCmd(char *args[])
-
- {
- if (!(ULONG)args[1] && !TestSaved)
- { return(RETURN_WARN);
- }
-
- DeleteTournament(args[0]);
- return(RETURN_OK);
- }
- struct Hook NewTrnCmdHook = {{NULL, NULL}, (HOOKFUNC) ARexxCmdFunc,
- (HOOKFUNC) NewTrnCmd};
-
-
-
-
- /*
- LoadTrn loads a tournament
-
- Inputs: FILE - the name of the file to be loaded
- FORCE - suppress asking the user for confirmation, if current
- tournament isn't saved
- */
- ULONG LoadTrnCmd(char *args[])
-
- {
- if (!(ULONG)args[1] && !TestSaved)
- { return(RETURN_WARN);
- }
-
- return((ULONG) LoadTournament(args[0], NULL, NULL));
- }
- struct Hook LoadTrnCmdHook = {{NULL, NULL}, (HOOKFUNC) ARexxCmdFunc,
- (HOOKFUNC) LoadTrnCmd};
-
-
-
-
- /*
- SaveTrn saves a tournament
-
- Inputs: FILE - the name of the file to be written
- ICON - create an icon
- */
- ULONG SaveTrnCmd(char *args[])
-
- { int makeicons = MakeIcons;
- int result;
-
- MakeIcons = (ULONG)args[1];
- result = SaveTournament(args[0]);
- MakeIcons = makeicons;
- return((ULONG) (result ? RETURN_OK : RETURN_ERROR));
- }
- struct Hook SaveTrnCmdHook = {{NULL, NULL}, (HOOKFUNC) ARexxCmdFunc,
- (HOOKFUNC) SaveTrnCmd};
-
-
-
-
- /*
- AddPlrCmd adds a new player
-
- Inputs: NAME - the players name
- STREET, VILLAGE, CHESSCLUB, BIRTHDAY, PHONE, RATING, ELO
- - the corresponding fields in the player structure
- FLAGS - a string, that may contain the characters
- s,j,w,a,b,c,d,e corresponding to the flags
- TNFLAGSF_SENIOR, TNFLAGSF_JUNIOR, TNFLAGSF_WOMAN
- and TNFLAGSFJUNIORA, ..., TNFLAGSF_JUNIORE
- NOUSER - a flag which indicates, that the user should not be
- asked
- */
- static void getstr(char *dest, char *src, int maxlen, ULONG *result)
- { int len;
-
- if (src != NULL)
- { len = strlen(src);
-
- if (len > maxlen)
- { *result = RETURN_WARN;
- strncpy(dest, src, maxlen);
- dest[maxlen] = '\0';
- }
- else
- { strcpy(dest, src);
- }
- }
- }
- static int getflags(char *flagsstr, ULONG *result)
- { int flags = 0;
-
- while (flagsstr != NULL && *flagsstr != '\0')
- { switch(ToLower((int) *flagsstr++))
- { case 's':
- flags |= TNFLAGSF_SENIOR;
- break;
- case 'j':
- flags |= TNFLAGSF_JUNIOR;
- break;
- case 'w':
- flags |= TNFLAGSF_WOMAN;
- break;
- case 'a':
- flags |= TNFLAGSF_JUNIOR|TNFLAGSF_JUNIORA;
- break;
- case 'b':
- flags |= TNFLAGSF_JUNIOR|TNFLAGSF_JUNIORB;
- break;
- case 'c':
- flags |= TNFLAGSF_JUNIOR|TNFLAGSF_JUNIORC;
- break;
- case 'd':
- flags |= TNFLAGSF_JUNIOR|TNFLAGSF_JUNIORD;
- break;
- case 'e':
- flags |= TNFLAGSF_JUNIOR|TNFLAGSF_JUNIORE;
- break;
- default:
- *result = RETURN_WARN;
- }
- if ((flags & TNFLAGSF_SENIOR) &&
- (flags & TNFLAGSF_JUNIOR|TNFLAGSF_JUNIORA|TNFLAGSF_JUNIORB|
- TNFLAGSF_JUNIORC|TNFLAGSF_JUNIORD|TNFLAGSF_JUNIORE))
- { *result = RETURN_WARN;
- }
- }
- return(flags);
- }
- ULONG AddPlrCmd(char *args[])
-
- { struct Player plr;
- ULONG result = 0;
-
- /*
- Check, if we may enter new players.
- */
- if (NumRounds >= 1 && RoundRobinTournament)
- { return(RETURN_ERROR);
- }
- if (NumRounds > 1 && SwissPairingTournament)
- { return(RETURN_ERROR);
- }
- if (NumRounds > 0)
- { if (!args[9] &&
- !AskContinue((char *) GetChaosString(MSG_NEW_PLAYER_REQUEST)))
- { return(RETURN_ERROR);
- }
- }
-
-
- memset(&plr, 0, sizeof(plr));
- getstr(plr.Name, args[0], NAMELEN, &result);
- if (result != 0)
- { return(RETURN_ERROR);
- }
- getstr(plr.Street, args[1], NAMELEN, &result);
- getstr(plr.Village, args[2], NAMELEN, &result);
- getstr(plr.ChessClub, args[3], NAMELEN, &result);
- getstr(plr.BirthDay, args[4], NAMELEN, &result);
- getstr(plr.PhoneNr, args[5], PHONENRLEN, &result);
- getstr(plr.DWZ, args[6], DWZLEN, &result);
- if (args[7] != NULL)
- { plr.ELO = *((ULONG *) args[7]);
- }
- plr.Flags = getflags(args[8], &result);
-
- if (!CheckPlayerValid(&plr, !args[9]))
- { return(RETURN_ERROR);
- }
-
- if (!AddPlayer(&plr))
- { return(RETURN_ERROR);
- }
- return(result);
- }
- struct Hook AddPlrCmdHook = {{NULL, NULL}, (HOOKFUNC) ARexxCmdFunc,
- (HOOKFUNC) AddPlrCmd};
-
-
-
-
- /*
- ModifyPlrCmd modifies a new player
-
- Inputs: PLAYER - the players name
- NAME, STREET, VILLAGE, CHESSCLUB, BIRTHDAY, PHONE, RATING, ELO
- - the corresponding fields in the player structure
- FLAGS - a string, that may contain the characters
- s,j,w,a,b,c,d,e corresponding to the flags
- TNFLAGSF_SENIOR, TNFLAGSF_JUNIOR, TNFLAGSF_WOMAN
- and TNFLAGSFJUNIORA, ..., TNFLAGSF_JUNIORE
- NOUSER - a flag which indicates, that the user should not be
- asked
-
- Note, that only those fields are modified, for which an argument is
- supplied
- */
- static struct Player *getplayer(char *arg)
- { struct Player *plr;
-
- if (arg)
- { for (plr = (struct Player *) PlayerList.lh_Head;
- plr->Tn_Node.ln_Succ != NULL;
- plr = (struct Player *) plr->Tn_Node.ln_Succ)
- { if (Stricmp((STRPTR) plr->Name, (STRPTR) arg) == 0)
- { return(plr);
- }
- }
- }
- return(NULL);
- }
- ULONG ModifyPlrCmd(char *args[])
-
- { struct Player plr, *plrptr;
- ULONG result = 0;
-
- /*
- Check, if we really may modify players
- */
- if (!args[10] && NumRounds > 0 &&
- !AskContinue((char *) GetChaosString(MSG_MODIFY_PLAYER_REQUEST)))
- { return(RETURN_ERROR);
- }
-
- if (plrptr = getplayer(args[0]))
- { memcpy(&plr, plrptr, sizeof(plr));
- getstr(plr.Name, args[1], NAMELEN, &result);
- getstr(plr.Street, args[2], NAMELEN, &result);
- getstr(plr.Village, args[3], NAMELEN, &result);
- getstr(plr.ChessClub, args[4], NAMELEN, &result);
- getstr(plr.BirthDay, args[5], NAMELEN, &result);
- getstr(plr.PhoneNr, args[6], PHONENRLEN, &result);
- getstr(plr.DWZ, args[7], DWZLEN, &result);
- if (args[7] != NULL)
- { plr.ELO = *((ULONG *) args[8]);
- }
- plr.Flags = getflags(args[9], &result);
-
- { int result;
-
- Remove((struct Node *) plrptr);
- result = CheckPlayerValid(&plr, !args[10]);
- Insert(&PlayerList, (struct Node *) plrptr,
- (struct Node *) plrptr->Tn_Node.ln_Pred);
- if (!result)
- { return(RETURN_ERROR);
- }
- }
-
- ModifyPlayer(plrptr, &plr);
- return(result);
- }
- return(RETURN_ERROR);
- }
- struct Hook ModifyPlrCmdHook = {{NULL, NULL}, (HOOKFUNC) ARexxCmdFunc,
- (HOOKFUNC) ModifyPlrCmd};
-
-
-
-
- /*
- DelPlrCmd deletes a player
-
- Inputs: PLAYER - the players name
- FORCE - suppresses asking the user for confirmation
- */
- ULONG DelPlrCmd(char *args[])
-
- { struct Player *plrptr;
-
- if ((NumRounds > 0 && RoundRobinTournament) ||
- (NumGamesMissing > 0 && SwissPairingTournament))
- { return(RETURN_ERROR);
- }
-
- if (plrptr = getplayer(args[0]))
- { if ((plrptr->Flags & TNFLAGSF_WITHDRAWN) ||
- (!(ULONG)args[1] &&
- !AskContinue((char *) GetChaosString((NumRounds == 0) ?
- MSG_DELETE_THIS_PLAYER_REQUEST :
- MSG_THIS_PLAYER_GONE_REQUEST),
- plrptr->Name)))
- { return(RETURN_WARN);
- }
- DeletePlayer(plrptr);
- }
- return(RETURN_ERROR);
- }
- struct Hook DelPlrCmdHook = {{NULL, NULL}, (HOOKFUNC) ARexxCmdFunc,
- (HOOKFUNC) DelPlrCmd};
-
-
-
-
- /*
- SetPlrCmd sets a player
-
- Inputs: PLAYER - the player, that should be set
- INIT - discard set players
- FORCE - suppresses asking the user for confirmation, if
- players should be paired, that had the same color
- in the last two rounds
- SETCOLOR - colors are determined by the order of entering the
- players
- */
- static ULONG SetPlrCmd(char **args)
-
- { struct Player *plr;
-
- if (args[1] && !InitSetGames())
- { return(RETURN_ERROR);
- }
- if (!args[0])
- { return ((ULONG) (args[1] ? RETURN_OK : RETURN_ERROR));
- }
- if (!(plr = getplayer(args[0])))
- { return(RETURN_ERROR);
- }
- return((ULONG) (SetPlayer(plr, (int) args[2], (int) args[3]) ?
- RETURN_OK : RETURN_ERROR));
- }
- struct Hook SetPlrCmdHook = {{NULL, NULL}, (HOOKFUNC) ARexxCmdFunc,
- (HOOKFUNC) SetPlrCmd};
-
-
-
-
- /*
- DoPairingsCmd creates a new round
-
- Inputs: SWISSPAIRING - create a swiss pairing tournament
- ROUNDROBIN - create a round robin tournament (FIDE system)
- ROUNDROBINSHIFT - create a round robin tournament (shift system)
- NOUSER - suppresses setting games by the user
- */
- static ULONG DoPairingsCmd(char *args[])
-
- { int mode = TrnMode;
-
- if (args[0])
- { if (RoundRobinTournament || args[1] || args[2])
- { return(RETURN_ERROR);
- }
- else
- { mode = TNMODEF_SWISS_PAIRING;
- }
- }
-
- if (args[1])
- { if ((TrnMode & (TNMODEF_SWISS_PAIRING|TNMODEF_SHIFT_SYSTEM)) ||
- args[2])
- { return(RETURN_ERROR);
- }
- else
- { mode = TNMODEF_ROUND_ROBIN;
- }
- }
-
- if (args[2])
- { if (SwissPairingTournament ||
- (TrnMode & (TNMODEF_ROUND_ROBIN|TNMODEF_SHIFT_SYSTEM)
- == TNMODEF_ROUND_ROBIN))
- { return(RETURN_ERROR);
- }
- else
- { mode = TNMODEF_ROUND_ROBIN|TNMODEF_SHIFT_SYSTEM;
- }
- }
-
- if (mode == 0)
- { return(RETURN_ERROR);
- }
-
- return((ULONG) (DoPairings(mode, FALSE, !(int) args[3]) ? 0 : RETURN_ERROR));
- }
- struct Hook DoPairingsCmdHook = {{NULL, NULL}, (HOOKFUNC) ARexxCmdFunc,
- (HOOKFUNC) DoPairingsCmd};
-
-
-
-
- /*
- RsltCmd allows to enter a result
-
- Inputs: WHITE - the white players name
- BLACK - the black players name
- RESULT - the result (-1 = result missing, 0 = black wins,
- 1 = draw, 2 = white wins)
- NOTPLAYED - indicates, that the game wasn't really played
- */
- ULONG RsltCmd(char *args[])
-
- { struct Game *gm;
- struct GameNode gn;
- int round;
-
- if (NumRounds == 0 || (ULONG)args[2] < -1 || (ULONG)args[2] > 2)
- { return(RETURN_ERROR);
- }
-
- for(gn.White = (struct Player *) PlayerList.lh_Head;
- gn.White->Tn_Node.ln_Succ != NULL;
- gn.White = (struct Player *) gn.White->Tn_Node.ln_Succ)
- { if (Stricmp((STRPTR) gn.White->Name, (STRPTR) args[0]) == 0)
- { for (gm = gn.White->First_Game, round = 1; gm != NULL;
- gm = gm->Next, round++)
- { if (Stricmp((STRPTR) gm->Opponent->Name, (STRPTR) args[1]) == 0)
- { gn.Result = *(ULONG *)args[2];
- gn.Flags = (ULONG)args[3] ? GMFLAGSF_NOFIGHT : 0;
- gn.Black = gm->Opponent;
- EnterResult(&gn, round);
- }
- }
- break;
- }
- }
- return(RETURN_ERROR);
- }
- struct Hook RsltCmdHook = {{NULL, NULL}, (HOOKFUNC) ARexxCmdFunc,
- (HOOKFUNC) RsltCmd};
-
-
-
-
- /*
- PlrLstCmd prints the list of players
-
- Inputs: FILE - the file, which should receive the output
- SHORT - makes the output short
- */
- static int getdevice(char *devicestr)
- { int device = DEVICE_FileAscii;
-
- if (Stricmp((STRPTR) devicestr, (STRPTR) "prt:") == 0)
- { device = DEVICE_PrinterDraft;
- }
- else if (Stricmp((STRPTR) devicestr, (STRPTR) "prt:LQ") == 0)
- { device = DEVICE_PrinterLQ;
- }
- return(device);
- }
- ULONG PlrLstCmd(char *args[])
-
- { extern int OutputReturnCode;
-
- if (NumPlayers == 0)
- { return(RETURN_ERROR);
- }
-
- OutPlayerList(args[0], getdevice(args[0]), !(ULONG)args[1]);
- return((ULONG) OutputReturnCode);
- }
- struct Hook PlrLstCmdHook = {{NULL, NULL}, (HOOKFUNC) ARexxCmdFunc,
- (HOOKFUNC) PlrLstCmd};
-
-
-
-
- /*
- IntRatCmd prints the internal rankings.
-
- Inputs: FILE - the file, which should receive the output
- */
- ULONG IntRatCmd(char *args[])
-
- { extern int OutputReturnCode;
-
- if (NumPlayers == 0)
- { return(RETURN_ERROR);
- }
-
- OutInternalRankings(args[0], getdevice(args[0]));
- return((ULONG) OutputReturnCode);
- }
- struct Hook IntRatCmdHook = {{NULL, NULL}, (HOOKFUNC) ARexxCmdFunc,
- (HOOKFUNC) IntRatCmd};
-
-
-
-
- /*
- TblCmd prints the table.
-
- Inputs: FILE - the file, which should receive the output
- TABMODE - the table's sorting mode (0 = simple, 1 = Buchholz,
- 2 = Extended Buchholz, 3 = Sonneborn-Berger)
- default is simple
- PLRMODE - the code, which players should be included into the
- table (0 = all, 1 = seniors, 2 = juniors, 3 = women,
- 4 = juniors (A), 5 = juniors (B), 6 = juniors (C),
- 7 = juniors (D), 8 = juniors (E))
- default is all players
- */
- int gettabmode(ULONG *mode)
- { int tabmode = 0;
-
- if (mode != NULL)
- { switch(*mode)
- { case 0:
- break;
- case 1:
- if (RoundRobinTournament)
- { return(-1);
- }
- tabmode = TNMODEF_BUCHHOLZ;
- break;
- case 2:
- if (RoundRobinTournament)
- { return(-1);
- }
- tabmode = TNMODEF_EXT_BUCHHOLZ;
- break;
- case 3:
- if (!SwissPairingTournament)
- { tabmode = TNMODEF_SONNEBORN_BERGER;
- break;
- }
- default:
- return(-1);
- }
- }
- return(tabmode);
- }
- ULONG TblCmd(char *args[])
-
- { extern int OutputReturnCode;
- int plrmode = 0;
- int tabmode;
-
- if (NumRounds == 0)
- { return(RETURN_ERROR);
- }
-
- if ((tabmode = gettabmode((ULONG *) args[1])) == -1)
- { return(RETURN_ERROR);
- }
-
- if (args[2])
- { switch(*(ULONG *)args[2])
- { case 0:
- break;
- case 1:
- plrmode = TNFLAGSF_SENIOR;
- break;
- case 2:
- plrmode = TNFLAGSF_JUNIOR;
- break;
- case 3:
- plrmode = TNFLAGSF_WOMAN;
- break;
- case 4:
- plrmode = TNFLAGSF_JUNIORA;
- break;
- case 5:
- plrmode = TNFLAGSF_JUNIORB;
- break;
- case 6:
- plrmode = TNFLAGSF_JUNIORC;
- break;
- case 7:
- plrmode = TNFLAGSF_JUNIORD;
- break;
- case 8:
- plrmode = TNFLAGSF_JUNIORE;
- break;
- default:
- return(RETURN_ERROR);
- }
- }
-
- OutTable(args[0], getdevice(args[0]), plrmode, tabmode);
- return((ULONG) OutputReturnCode);
- }
- struct Hook TblCmdHook = {{NULL, NULL}, (HOOKFUNC) ARexxCmdFunc,
- (HOOKFUNC) TblCmd};
-
-
-
-
- /*
- RndCmd prints the results of one round
-
- Inputs: FILE - the file, which should receive the output
- ROUND - the number of the round (default is the last round)
- */
- ULONG RndCmd(char *args[])
-
- { extern int OutputReturnCode;
- int round;
-
-
- if ((round = NumRounds) == 0)
- { return(RETURN_ERROR);
- }
-
- if (args[1] &&
- ((round = *(ULONG *)args[1]) <= 0 || round > NumRounds))
- { return(RETURN_ERROR);
- }
-
- OutRound(args[0], getdevice(args[0]), round);
- return((ULONG) OutputReturnCode);
- }
- struct Hook RndCmdHook = {{NULL, NULL}, (HOOKFUNC) ARexxCmdFunc,
- (HOOKFUNC) RndCmd};
-
-
-
-
- /*
- TblPrgrssCmd prints the table of progress
-
- Inputs: FILE - the file, which should receive the output
- TABMODE - the table's sorting mode (see TblCmd)
- */
- ULONG TblPrgrssCmd(char *args[])
-
- { extern int OutputReturnCode;
- int tabmode = 0;
-
- if (NumRounds == 0)
- { return(RETURN_ERROR);
- }
-
- if ((tabmode = gettabmode((ULONG *) args[1])) == -1)
- { return(RETURN_ERROR);
- }
-
- OutTableProgress(args[0], getdevice(args[0]), tabmode);
- return((ULONG) OutputReturnCode);
- }
- struct Hook TblPrgrssCmdHook = {{NULL, NULL}, (HOOKFUNC) ARexxCmdFunc,
- (HOOKFUNC) TblPrgrssCmd};
-
-
-
-
- /*
- CrossTableCmd prints a crosstable
-
- Inputs: FILE - the file, which should receive the output
- TEX - creates tex source
- */
- ULONG CrssTblCmd(char *args[])
-
- { int device = getdevice(args[0]);
-
- if (!RoundRobinTournament)
- { return (RETURN_ERROR);
- }
- if (args[1])
- { device = DEVICE_FileTeX;
- }
-
- OutCrossTable(args[0], device);
- return((ULONG) OutputReturnCode);
- }
- struct Hook CrssTblCmdHook = {{NULL, NULL}, (HOOKFUNC) ARexxCmdFunc,
- (HOOKFUNC) CrssTblCmd};
-
-
-
-
- /*
- PlrCrdsCmd prints player cards
-
- Inputs: FILE - the file, which should receive the output
- TEX - creates tex source
- */
- ULONG PlrCrdsCmd(char *args[])
-
- { int device = getdevice(args[0]);
-
- if (!SwissPairingTournament)
- { return(RETURN_ERROR);
- }
- if (args[1])
- { device = DEVICE_FileTeX;
- }
-
- OutPlayerCards(args[0], device);
- return((ULONG) OutputReturnCode);
- }
- struct Hook PlrCrdsCmdHook = {{NULL, NULL}, (HOOKFUNC) ARexxCmdFunc,
- (HOOKFUNC) PlrCrdsCmd};
-
-
-
-
- /*
- DWZRprtCmd prints the DWZ report
-
- Inputs: FILE - the file, which should receive the output
- */
- ULONG DWZRprtCmd(char *args[])
-
- {
- if (NumRounds == 0)
- { return(RETURN_ERROR);
- }
-
- OutDWZReport(args[0], getdevice(args[0]));
- return((ULONG) OutputReturnCode);
- }
- struct Hook DWZRprtCmdHook = {{NULL, NULL}, (HOOKFUNC) ARexxCmdFunc,
- (HOOKFUNC) DWZRprtCmd};
-
-
-
-
- /*
- WindowCmd switches the main window on or off
-
- Inputs: ON - switch the window on
- OFF - switch it off
- */
- ULONG WindowCmd(char *args[])
-
- { extern int NoWindow;
- int open;
-
- if (args[0] == args[1])
- { return(RETURN_ERROR);
- }
- NoWindow = (int) args[1];
- get(MainWnd, MUIA_Window_Open, &open);
- if (!open != NoWindow)
- { set(MainWnd, MUIA_Window_Open, !open);
- }
- return(RETURN_OK);
- }
- struct Hook WindowCmdHook = {{NULL, NULL}, (HOOKFUNC) ARexxCmdFunc,
- (HOOKFUNC) WindowCmd};
-
-
-
- struct MUI_Command ARexxCommands[] =
- { {"NewTournament", "NAME/A,FORCE/S", 2, &NewTrnCmdHook},
- {"LoadTournament", "FILE/A,FORCE/S", 2, &LoadTrnCmdHook},
- {"SaveTournament", "FILE/A,ICON/S", 1, &SaveTrnCmdHook},
- {"AddPlayer", "NAME/A,STREET/K,VILLAGE/K,CHESSCLUB/K,BIRTHDAY/K,"
- "PHONE/K,RATING/K,ELO/K/N,FLAGS/K,NOUSER/S",
- 9, &AddPlrCmdHook},
- {"ModifyPlayer", "PLAYER/A,NAME/K,STREET/K,VILLAGE/K,CHESSCLUB/K,"
- "BIRTHDAY/K,PHONE/K,RATING/K,ELO/K,FLAGS/K,NOUSER/S,",
- 10, &ModifyPlrCmdHook},
- {"DeletePlayer", "PLAYER/A,FORCE/S", 2, &DelPlrCmdHook},
- {"SetPlayer", "PLAYER,INIT/S,FORCE/S,SETCOLOR/S",
- 3, &SetPlrCmdHook},
- {"DoPairings", "SWISSPAIRING/S,ROUNDROBIN/S,ROUNDROBINSHIFT/S,"
- "NOUSER/S", 4, &DoPairingsCmdHook},
- {"EnterResult", "WHITE/A,BLACK/A,RESULT/A/N,NOTPLAYED/S",
- 4, &RsltCmdHook},
- {"PlayerList", "FILE/A,SHORT/S", 3, &PlrLstCmdHook},
- {"InternalRatings", "FILE/A", 1, &IntRatCmdHook},
- {"Table", "FILE/A,TABMODE/K/N,PLRMODE/K/N",
- 3, &TblCmdHook},
- {"Round", "FILE/A,NUMBER/N", 2, &RndCmdHook},
- {"TableOfProgress", "FILE/A,TABMODE/K/N",
- 2, &TblPrgrssCmdHook},
- {"CrossTable", "FILE/A,TEX/S", 2, &CrssTblCmdHook},
- {"PlayerCards", "FILE/A,TEX/S", 2, &PlrCrdsCmdHook},
- {"DWZReport", "FILE/A", 1, &DWZRprtCmdHook},
- {"Window", "ON/S,OFF/S", 2, &WindowCmdHook},
- {NULL, NULL, 0, NULL}
- };
- #endif /* AMIGA */
-